package fi.koku.services.test.util;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.test.jdbc.SimpleJdbcTestUtils;
/**
*
* Some DB related operations.
*
* @author laukksa
* @author makinsu
*
*/
public class TestDbUtils {
private TestDbUtils() {
}
public static JdbcTemplate getJdbcTemplateInstance() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl(TestPropertiesUtil.getProperty(TestPropertiesUtil.KOKU_DS_URL));
dataSource.setUsername(TestPropertiesUtil.getProperty(TestPropertiesUtil.KOKU_DS_USERNAME));
dataSource.setPassword(TestPropertiesUtil.getProperty(TestPropertiesUtil.KOKU_DS_PWD));
return new JdbcTemplate(dataSource);
}
public static void executeSqlScriptFromClasspath(String resourcePath, JdbcTemplate template){
Resource classpathResource = new ClassPathResource(resourcePath);
SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(template.getDataSource());
SimpleJdbcTestUtils.executeSqlScript(simpleJdbcTemplate, classpathResource, false);
}
public static void deleteFromAllTables(JdbcTemplate template) {
executeSqlScriptFromClasspath("/scripts/delete-from-all-tables.sql", template);
}
public static void writeToLogTable(JdbcTemplate template){
executeSqlScriptFromClasspath("/scripts/insert-to-log.sql", template);
}
public static void writeToAdminLogTable(JdbcTemplate template){
executeSqlScriptFromClasspath("/scripts/insert-to-admin-log.sql", template);
}
}